package com.vip.base.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vip.common.response.Result;
import com.vip.database.dto.user.AddUserDTO;
import com.vip.database.dto.user.GetUserDTO;
import com.vip.database.entity.SysUser;

import java.util.List;

/**
 * 用户数据 服务类
 *
 * @author LEON
 * @since 2020-04-05
 */
public interface ISysUserService extends IService<SysUser> {
    /**
     * 获取用户列表数据
     *
     * @param pageNo
     * @param pageSize
     * @param account
     * @param username
     * @return
     */
    Result<List<GetUserDTO>> getUserList(Integer pageNo, Integer pageSize, String account, String username);

    /**
     * 用户授权/撤权
     *
     * @param roleIds
     * @param userId
     * @return
     */
    Result<String> userAccredit(String roleIds, String userId, Boolean isAdd);

    /**
     * 判断新注册用户是否已存在
     *
     * @param account
     * @return
     */
    Result<Boolean> userIsExist(String account);

    /**
     * 添加新用户
     *
     * @param dto
     * @return
     */
    Result<String> addNewUser(AddUserDTO dto);
    /**
     * 获取用户详情
     *
     * @param id
     * @return
     */
    Result<GetUserDTO> getUserDetails(String id);

    /**
     * 删除用户
     *
     * @param id
     * @return
     */
    Result<String> deleteUserById(String id);

    /**
     * 更新用户信息
     *
     * @param id
     * @param dto
     * @return
     */
    Result<GetUserDTO> updateUser(String id, AddUserDTO dto);

}
